<?php

	//创建订单日志
	function creatOrderLog($map){
		$map['oldid']   = $map['id'];
		$map['addtime'] = time();
		$map['addid']   = session(C('USER_AUTH_KEY'));

		$admin = M('Admin')->find($map['addid']);
		$map['addname'] = $admin['realname'];

		unset($map['id']);
		M('OrderLog')->add($map);
	}

	//根据订单状态，创建该状态下可以进行的操作
	function createOrderStatus($status,$id){

		$role = session(C('USER_AUTH_ROLE'));
		$list = F('orderStatus'.$role);
		$func = $list[$status]['func'];
		$html = "";
		
		if($func){
			foreach($func as $k=>$v){
				$html .= "<span class='order_opera ".$k."' id='".$id."'>";
				$html .= "<i class='icon-sun'></i>&nbsp;".$v;
				$html .= "</span>";
			}
		}
		return $html;
	}
	
	//后台列表多终端搜索选项控制
	function listSiteShow($arg){
		$html = '';
		if(count(C('MORESITE_LIST'))>1){
			$html .= '<select name="device" id="device" class="form_ele">';
			$html .= '<option value="">所属站点</option>';
			foreach(C('MORESITE_LIST') as $k=>$v){
				if($k==$arg){
					$html .= '<option selected value="'.$k.'">'.L($v[0]).'</option>';
				}else{
					$html .= '<option value="'.$k.'">'.L($v[0]).'</option>';
				}
			}
			$html .= '</select>';
		}
	
		echo $html;
	}
	
	//后台列表多国语言项控制
	function listLangShow($arg){
		$html = '';
		if(count(C('LANG_ARRAY'))>1){
			$html .= '<select name="lang" id="lang" class="form_ele">';
			$html .= '<option value="">所属语言</option>';
			foreach(C('LANG_ARRAY') as $k=>$v){
				if($k==$arg){
					$html .= '<option selected value="'.$k.'">'.$v.'</option>';
				}else{
					$html .= '<option value="'.$k.'">'.$v.'</option>';
				}
			}
			$html .= '</select>';
		}
	
		echo $html;
	}
	
	//后台列表多站点项控制
	function listCateidShow($arg){
		$html = '';
		$html .= '<select name="cateid" id="cateid" class="form_ele">';
		$html .= '<option value="">所属栏目</option>';
		$html .= '</select>';
		echo $html;
	}
	
	//后台列表删除项控制
	function listIsdelShow($arg){
		$html = '';
		$html .= '<select name="isdel" id="isdel" class="form_ele">';
		$html .= '<option value="2">查看未删除</option>';
		$html .= '<option value="1">查看回收站</option>';
		$html .= '</select>';
		echo $html;
	}
	
	
	function eleSiteShow($arg=''){
		$html = '';
	
		if(count(C('MORESITE_LIST'))>1){
			$html .= '<tr>';
			$html .= '<td class="ele_title"><label>发布到：<em>★</em></label></td>';
			$html .= '<td class="ele_content">';
			foreach(C('MORESITE_LIST') as $k=>$v){
				$checked = '';
				if(strpos('|'.$arg,$k)){
					$checked = 'checked="checked"';
				}else{
					if($v[1]=='checked'){
						$checked = 'checked="checked"';
					}
				}
				$html .= '<label for="device">';
				$html .= '<input '.$checked.' type="checkbox" name="site[]" cname="site" value="'.$k.'" class="etvalid form_ele_checkbox" type="checkbox" msginfo="请选择要发布到的站点！" msgerr="必选选择" msgok="选择正确" datatype="checkbox:notempty" checkevent="click"/>'.$v[0];
				$html .= '</label>';
			}
			$html .= '</td>';
			$html .= '<td class="ele_tis">';
			$html .= '<div class="info">请选择要发布到的站点</div>';
			$html .= '</td>';
			$html .= '</tr>';
		}
	
		echo $html;
	}
	
	//后台表单多国语言项控制
	function eleLangShow($arg){
		$html = '';
		if(count(C('LANG_ARRAY'))>1){
			$html .= '<tr>';
			$html .= '<td class="ele_title"><label for="lang">所属语言：<em>★</em></label></td>';
			$html .= '<td class="ele_content">';
			$html .= '<select name="lang" id="lang" class="form_ele_select width_200 etvalid" msginfo="请选择所属语言！" msgerr="必选选择" msgok="选择正确" datatype="select:notempty" checkevent="change">';
			$html .= '<option value="">请选择语言版本</option>';
			foreach(C('LANG_ARRAY') as $k=>$v){
				if($k==$arg){
					$html .= '<option selected value="'.$k.'">'.$v.'</option>';
				}else{
					$html .= '<option value="'.$k.'">'.$v.'</option>';
				}
			}
			$html .= '</select>';
			$html .= '</td>';
			$html .= '<td class="ele_tis">';
			$html .= '<div class="info">请选择所属语言版本</div>';
			$html .= '</td>';
			$html .= '</tr>';
		}
	
		echo $html;
	}
	
	//后台表单所属栏目选项支持
	function eleCateidShow($arg){
		$html = '';
		$html .= '<tr>';
		$html .= '<td class="ele_title"><label for="cateid">所属栏目：<em>★</em></label></td>';
		$html .= '<td class="ele_content">';
		$html .= '<select name="cateid" id="cateid" class="form_ele_select width_200">';
		$html .= '<option value="">请选择所属栏目</option>';
		$html .= '</select>';
		$html .= '</td>';
		$html .= '<td class="ele_tis">';
		$html .= '<div class="info">请选择所属栏目</div>';
		$html .= '</td>';
		$html .= '</tr>';
		echo $html;
	}
	
	/**
	 * 生成会员状态session
	 */
	function createSession(){
	
		$dataid  = session(C('MEMBER_DATAID'));
		$tableid = session(C('MEMBER_TABLEID'));
	
		if(empty($dataid)||empty($tableid)){
	
			session(C('MEMBER_DATAID'),create_id());
			session(C('MEMBER_TABLEID'),"Guest");
		}
	}
	
	/**
	 * 清空会员状态session
	 */
	function clearSession(){
		
		unset($_SESSION[C('MEMBER_DATAID')]);
		unset($_SESSION[C('MEMBER_TABLEID')]);
		
		createSession();
	}
	
	/**
	 * 重新设置会员状态session的值
	 */
	function setSession($dataid,$tableid){
		session(C('MEMBER_DATAID'),$dataid);
		session(C('MEMBER_TABLEID'),$tableid);
	}
	
	/**
	 * 获取到会员状态
	 */
	function getMemberSession(){
		
		$map['tableid'] = session(C('MEMBER_TABLEID'));
		$map['dataid']  = session(C('MEMBER_DATAID'));
		
		return $map;
	}

	/**
	 * 生成reset的请求URL
	 */
	function createRestUrl($action,$map,$method="get"){
		
		$row['app_id']   = C("APP_ID");
		$row['timestamp']= time();
		$row['l']        = getLang();
		
		$map['company']  = session(C("USER_AUTH_COMPANY"));
		//$map['outletid'] = session(C("USER_AUTH_OUTLETID"));
		$map['addid']    = session(C("USER_AUTH_KEY"));
		$map['addno']    = session(C("USER_AUTH_NAME"));
		
		$arr   = array_merge($row, $map);
		$url   = http_build_query($arr);
		
		$arr['app_key']  = C("APP_KEY");
		$_sign = createRestSign($arr);
		
		if($method == "post"){
			$url = http_build_query($row);
		}
		return C('APP_REST').$action."&".$url."&_sign=".$_sign;
	}
	
	
	//返回json对应语言包值
	function dejsonByLang($value,$lang=''){
		if(empty($lang)){
			$lang = getLang();
		}
		$value   = json_decode($value,true);
		$val     = '';
		if(isset($value[$lang])){
			$val = $value[$lang];
		}
		return $val;
	}
	
	/**
	 * URL组装 支持不同URL模式
	 * @param string $url URL表达式，格式：'[分组/模块/操作#锚点@域名]?参数1=值1&参数2=值2...'
	 * @param string|array $vars 传入的参数，支持数组和字符串
	 * @param string $suffix 伪静态后缀，默认为true表示获取配置值
	 * @param boolean $redirect 是否跳转，如果设置为true则表示跳转到该URL地址
	 * @param boolean $domain 是否显示域名
	 * @return string
	 */
	function U($url='',$vars='',$suffix=true,$redirect=false,$domain=false) {
		// 解析URL
		$info   =  parse_url($url);
		$url    =  !empty($info['path'])?$info['path']:ACTION_NAME;
		if(isset($info['fragment'])) { // 解析锚点
			$anchor =   $info['fragment'];
			if(false !== strpos($anchor,'?')) { // 解析参数
				list($anchor,$info['query']) = explode('?',$anchor,2);
			}
			if(false !== strpos($anchor,'@')) { // 解析域名
				list($anchor,$host)    =   explode('@',$anchor, 2);
			}
		}elseif(false !== strpos($url,'@')) { // 解析域名
			list($url,$host)    =   explode('@',$info['path'], 2);
		}
		// 解析子域名
		if(isset($host)) {
			$domain = $host.(strpos($host,'.')?'':strstr($_SERVER['HTTP_HOST'],'.'));
		}elseif($domain===true){
			$domain = $_SERVER['HTTP_HOST'];
			if(C('APP_SUB_DOMAIN_DEPLOY') ) { // 开启子域名部署
				$domain = $domain=='localhost'?'localhost':'www'.strstr($_SERVER['HTTP_HOST'],'.');
				// '子域名'=>array('项目[/分组]');
				foreach (C('APP_SUB_DOMAIN_RULES') as $key => $rule) {
					if(false === strpos($key,'*') && 0=== strpos($url,$rule[0])) {
						$domain = $key.strstr($domain,'.'); // 生成对应子域名
						$url    =  substr_replace($url,'',0,strlen($rule[0]));
						break;
					}
				}
			}
		}
	
		// 解析参数
		if(is_string($vars)) { // aaa=1&bbb=2 转换成数组
			parse_str($vars,$vars);
		}elseif(!is_array($vars)){
			$vars = array();
		}
		if(isset($info['query'])) { // 解析地址里面参数 合并到vars
			parse_str($info['query'],$params);
			$vars = array_merge($params,$vars);
		}
		$param['_menuid'] = session("_menuid");
		$vars = array_merge($param,$vars) ;
	
		// URL组装
		$depr = C('URL_PATHINFO_DEPR');
		if($url) {
			if(0=== strpos($url,'/')) {// 定义路由
				$route      =   true;
				$url        =   substr($url,1);
				if('/' != $depr) {
					$url    =   str_replace('/',$depr,$url);
				}
			}else{
				if('/' != $depr) { // 安全替换
					$url    =   str_replace('/',$depr,$url);
				}
				// 解析分组、模块和操作
				$url        =   trim($url,$depr);
				$path       =   explode($depr,$url);
				$var        =   array();
				$var[C('VAR_ACTION')]       =   !empty($path)?array_pop($path):ACTION_NAME;
				$var[C('VAR_MODULE')]       =   !empty($path)?array_pop($path):MODULE_NAME;
				if($maps = C('URL_ACTION_MAP')) {
					if(isset($maps[strtolower($var[C('VAR_MODULE')])])) {
						$maps    =   $maps[strtolower($var[C('VAR_MODULE')])];
						if($action = array_search(strtolower($var[C('VAR_ACTION')]),$maps)){
							$var[C('VAR_ACTION')] = $action;
						}
					}
				}
				if($maps = C('URL_MODULE_MAP')) {
					if($module = array_search(strtolower($var[C('VAR_MODULE')]),$maps)){
						$var[C('VAR_MODULE')] = $module;
					}
				}
				if(C('URL_CASE_INSENSITIVE')) {
					$var[C('VAR_MODULE')]   =   parse_name($var[C('VAR_MODULE')]);
				}
				if(!C('APP_SUB_DOMAIN_DEPLOY') && C('APP_GROUP_LIST')) {
					if(!empty($path)) {
						$group                  =   array_pop($path);
						$var[C('VAR_GROUP')]    =   $group;
					}else{
						if(GROUP_NAME != C('DEFAULT_GROUP')) {
							$var[C('VAR_GROUP')]=   GROUP_NAME;
						}
					}
					if(C('URL_CASE_INSENSITIVE') && isset($var[C('VAR_GROUP')])) {
						$var[C('VAR_GROUP')]    =  strtolower($var[C('VAR_GROUP')]);
					}
				}
			}
		}
	
		if(C('URL_MODEL') == 0) { // 普通模式URL转换
			$url        =   __APP__.'?'.http_build_query(array_reverse($var));
			if(!empty($vars)) {
				$vars   =   urldecode(http_build_query($vars));
				$url   .=   '&'.$vars;
			}
		}else{ // PATHINFO模式或者兼容URL模式
			if(isset($route)) {
				$url    =   __APP__.'/'.rtrim($url,$depr);
			}else{
				$url    =   __APP__.'/'.implode($depr,array_reverse($var));
			}
			if(!empty($vars)) { // 添加参数
				foreach ($vars as $var => $val){
					if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode($val);
				}
			}
			if($suffix) {
				$suffix   =  $suffix===true?C('URL_HTML_SUFFIX'):$suffix;
				if($pos = strpos($suffix, '|')){
					$suffix = substr($suffix, 0, $pos);
				}
				if($suffix && '/' != substr($url,-1)){
					$url  .=  '.'.ltrim($suffix,'.');
				}
			}
		}
		if(isset($anchor)){
			$url  .= '#'.$anchor;
		}
		if($domain) {
			$url   =  (is_ssl()?'https://':'http://').$domain.$url;
		}
		if($redirect) // 直接跳转URL
			redirect($url);
		else
			return $url;
	}
	
	
?>